Skip to content

OPSC-17995 Upgrade commons-compress 1.10 -> 1.27.1 to fix CVEs, bump version to 2.7.0.13 - #18

Open
orion104 wants to merge 5 commits into
ripcord-masterfrom
OPSC-17995-equifax-security-concerns
Open

OPSC-17995 Upgrade commons-compress 1.10 -> 1.27.1 to fix CVEs, bump version to 2.7.0.13#18
orion104 wants to merge 5 commits into
ripcord-masterfrom
OPSC-17995-equifax-security-concerns

Conversation

@orion104

@orion104 orion104 commented Aug 2, 2026

Copy link
Copy Markdown
Collaborator

What is the issue

Customer (Equifax) reported 5 CVEs in OpsCenter caused by the commons-compress 1.10 jar bundled inside jython-standalone, tracked in OPSC-17995.

Because commons-compress is embedded inside the jython-standalone fat jar, it cannot be excluded via Gradle. The fix requires rebuilding jython-standalone with an updated commons-compress version and publishing a new artifact.

What does this PR fix and why was it fixed

  • Upgraded commons-compress from 1.101.27.1 (resolves all 5 reported CVEs, well past the required minimum of 1.21)
  • Bumped the jython-standalone artifact version from 2.7.0.122.7.0.13
  • Fixed Ant build to generate ANTLR sources with JDK 8 compatibility and committed pre-generated sources to avoid runtime NPE

The new 2.7.0.13 artifact is consumed by riptano/ripcord in the companion PR for OPSC-17995.

Orion Moore added 5 commits August 2, 2026 11:11
NoVerifyX509TrustManager was removed by the SNI commit (f6ee772)
but ripcord 6.8.x SslUtils.py still imports it. Reverting until
SNI support is properly integrated as part of OPSC-16690.
@orion104
orion104 changed the base branch from master to ripcord-master August 5, 2026 02:26
@orion104
orion104 requested review from Copilot and zgorzalyj August 5, 2026 02:29

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the Jython standalone build to address reported CVEs by upgrading the bundled commons-compress dependency, and includes related build/CI and SSL/ANTLR-generation adjustments needed to produce and publish the rebuilt artifact.

Changes:

  • Upgrade embedded commons-compress from 1.10 to 1.27.1 in the Ant build/jarjar packaging.
  • Add a Jenkins pipeline to build and upload the rebuilt jython-standalone artifact.
  • Commit pre-generated ANTLR lexer/token sources under gensrc/ and update SSL implementation details.

Reviewed changes

Copilot reviewed 8 out of 15 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
build.xml Bumps version, updates dist.dir, and upgrades bundled commons-compress jar in classpath and jarjar packaging.
maven/build.xml Updates the Maven bundle version used when producing/publishing Maven artifacts.
Lib/ssl.py Refactors SSL engine creation and related SSL capability constants/behavior.
Lib/_sslcerts.py Updates trust manager construction and introduces a “no-verify” trust manager for CERT_NONE.
Lib/test/test_ssl.py Adjusts SNI gating for an SSL algorithm verification test.
Jenkinsfile Adds CI pipeline steps for building jython-standalone and uploading to Artifactory.
gensrc/org/python/antlr/PythonLexer.java Adds committed, pre-generated ANTLR lexer source.
gensrc/org/python/antlr/Python.tokens Adds committed, pre-generated ANTLR token definitions.
gensrc/org/python/antlr/PythonPartial.tokens Adds committed, pre-generated ANTLR partial token definitions.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread build.xml
<pathelement path="${extlibs.dir}/netty-codec-4.1.4.Final.jar"/>
<pathelement path="${extlibs.dir}/netty-common-4.1.4.Final.jar"/>
<pathelement path="${extlibs.dir}/netty-handler-4.1.4.Final.jar"/>
<pathelement path="${extlibs.dir}/netty-handler--4.1.4.Final.jar"/>
Comment thread build.xml
Comment on lines +87 to +88
<property name="jython.version" value="2.7.0.14"/>
<property name="jython.version.noplus" value="2.7.0.14"/>
Comment thread maven/build.xml
<property file="${basedir}/default.properties"/>

<property name="project.version" value="2.7.0.13"/>
<property name="project.version" value="2.7.0.14"/>
Comment thread Lib/_sslcerts.py
Comment on lines 329 to 333
def getPrivateKey(self, alias):
for key_manager in self.key_managers:
private_key = key_manager.getPrivateKey(alias)
private_key = keyManager.getPrivateKey(alias)
if private_key:
return private_key
Comment thread Lib/_sslcerts.py
Comment on lines +407 to +416
class NoVerifyX509TrustManager(X509TrustManager):

def __init__(self, trust_managers):
self._trust_manager = CompositeX509TrustManager(trust_managers)
def checkClientTrusted(self, chain, auth_type):
pass

def engineInit(self, arg):
def checkServerTrusted(self, chain, auth_type):
pass

def engineGetTrustManagers(self):
return [self._trust_manager]
def getAcceptedIssuers(self):
return None
Comment thread Lib/ssl.py
Comment on lines +1041 to 1045
def _createSSLEngine(self, addr, hostname=None, cert_file=None, key_file=None):
trust_managers = [NoVerifyX509TrustManager()]
if self.verify_mode == CERT_REQUIRED:
tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm())
tmf.init(self._trust_store)
Comment thread Lib/ssl.py
Comment on lines 561 to 564
self.engine = self._context._createSSLEngine(
addr, self.server_hostname,
cert_file=getattr(self, "certfile", None), key_file=getattr(self, "keyfile", None),
server_side=self.server_side)
cert_file=getattr(self, "certfile", None), key_file=getattr(self, "keyfile", None))
self.engine.setUseClientMode(not self.server_side)
super(input,state);

}
public String getGrammarFileName() { return "/Users/orion.moore/apps/code/jython/grammar/Python.g"; }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants